public class MethodDemo {
	public static void main(String[] args) {
		int count = add(10, 2,4,3,3,3,3);
		System.out.println(count);
		eat();
		eat(10);
		eat(3, 3);
		eat("拉麵");
		doIt(1000);
	}
	
	public static int add(int a, int b, int... c) {

		int result = a + b;
		if (result > 10) {
			return result;
		} else {
			return 0;
		}
		// return result;
	}
	
	/**
	 * 重载的直接吃东西
	 */
	public static void eat() {
		eat(0);
	}

	/**
	 * 重载吃东西,要求输入数量
	 * @param count
	 */
	public static void eat(int count) {
		eat(count, 0);
	}
/**
 * 重载的吃东西要求输入数量和总和
 * @param count
 * @param sum
 */
public static int eat(int count, int sum) {
	return sum;
}
	/**
	 * 重载吃东西,要求输入名称
	 * @param name
	 */
	public static void eat(String name) {
	}

	// public static void main(String[] args) {
	// 	doIt(100000);
	// }

	/**
     * 自己调用自己 递归必须要设定退出条件,如果没有退出条件,或者退出条件设置的不完善,很容易引起栈溢出(栈内存不足).StackOverflowError
     */
    public static void doIt(int count) {


        // 2.设定一个退出条件
        if (count <= 0) {
            return;
        }
        
        //3.必须通过业务操作,促使达到退出条件
            // 4.递归不能嵌套太多,否则发生栈溢出
        count--;
        System.out.println(count);
        
//      1.自己调用自己
        doIt(count);
    }

}
